package com.tvunetworks.center.user.service;

import com.github.pagehelper.PageInfo;
import com.tvunetworks.center.common.model.vo.PeerIdWithName;
import com.tvunetworks.center.common.util.Result;
import com.tvunetworks.center.user.model.GridEvent;
import com.tvunetworks.center.user.model.param.api.*;
import com.tvunetworks.center.user.model.vo.GridEventVo;
/**
 * @program: tvucc-aggregator
 * @author lebronchen
 * @create: 2020-04-24 13:17
 **/
public interface GridEventService {
    /**
     *
     * @param param param
     * @return Result
     */
    Result<String> addEvent(AddGridEventParam param);

    /**
     *
     * @param param param
     * @return  Result
     */
    Result<String> updateEvent(UpdateGridEventParam param);

    /**
     *
     * @param param param
     * @return Result
     */
    Result<String> cancelEvent(CancelGridEventParam param);

    /**
     *
     * @param param param
     * @return Result
     */
    Result<String> deleteEvent(DeleteGridEventParam param);

    /**
     *
     * @param param param
     * @return GridEventVo
     */
    GridEventVo getEventByTaskId(GetGridEventByTaskIdParam param);

    /**
     *
     * @param param param
     * @return PageInfo
     */
    PageInfo<GridEventVo> pageEvent(GetGridEventParam param);

    /**
     *
     * @param param param
     * @return PageInfo
     */
    PageInfo<PeerIdWithName> pageUserReceiver(GetUserReceiverParam param);


    /**
     *
     * @param id id
     * @return GridEvent
     */
    GridEvent getById(String id);

    /**
     *
     * @param taskId taskId
     * @return GridEvent
     */
    GridEvent getByTaskId(String taskId);

    /**
     *
     * @param id id
     * @return GridEvent
     */
    GridEvent getByIdContainDeleted(String id);

    /**
     * prePairTask
     */
    void prePairTask();

    /**
     * eventStartTask
     */
    void eventStartTask();

    /**
     * eventEndTask
     */
    void eventEndTask();


}
